package com.bgs.engineering.api.sysUser.entiy;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;


import java.io.Serializable;
import java.util.Date;

/**
 * @ClassName SysUser
 * @Description 系统用户
 * @Author zcy
 * @Date 2023/3/24 15:43
 **/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@TableName("sys_user")
public class SysUser implements Serializable {

  /**
   * @GeneratedValue(strategy= GenerationType.IDENTITY) mysql主键自增方式
   * 主键id 主键必须定义Integer类型 否则主键将返回为0
   */
  @TableId(value = "id", type = com.baomidou.mybatisplus.annotation.IdType.AUTO)
  private Integer id;
  /**
   * 用户名
   */
  private String userName;
  /**
   * 登录名
   */
  private String loginName;
  /**
   * 登录名
   */
  private String password;
  /**
   * 电话
   */
  private String phone;
  /**
   * 邮箱
   */
  private String email;
  /**
   * 头像id
   */
  private String avatarId;
  /**
   * 年龄
   */
  private Integer age;
  /**
   * 用户地址
   */
  private String address;
  /**
   * 用户创建时间
   */
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")//JsonFormat是出参格式化。
  @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
  private Date createTime;
  /**
   * 更新时间
   */
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")//JsonFormat是出参格式化。
  @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
  private Date updateTime;
  /**
   * 创建人 可以是创建方式  系统创建还是自己申请
   */
  private String createUser;
  /**
   * 修改人
   */
  private String updateUser;
  /**
   * 最后登陆IP
   */
  private String lastLoginIp;
  /**
   * 最后登陆日期
   */
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
  private Date lastLoginTime;
  /**
   * 排序号
   */
  private Integer sortNum;
  /**
   * 用户状态 0 启用 1 禁用 2 注销
   */
  private Integer userFlag;
  /**
   * 备注
   */
  private String remarks;
    /**
     * 角色id
     */
    @TableField(exist = false)
  private Integer roleId;
}
